import 'package:flutter/material.dart';
import 'package:ycbl/utils/log_util.dart';

/// 登录状态管理： LoginStateViewModel 依赖于 UserViewModel，
/// 在 UserViewModel 中，当用户的各项数据变化时，都会通知监听者，
/// LoginStateViewModel 在收到这些变化时，会过滤掉跟登录状态无关（user 是否为空）的变化，
/// 从而登录状态不变，就不更新监听登录状态的页面，减少页面刷新，
class LoginStateViewModel extends ChangeNotifier {
  /// 是否登录
  bool _isLogin = false;
  bool get isLogin => _isLogin;

  /// 更新登录状态
  update(bool isLoginChange) {
    //登录状态未发生变化，不通知更新
    if(isLoginChange == isLogin) {
      return;
    }
    //更新当前登录状态
    _isLogin = isLoginChange;
    LogUtil.d('登录状态变化 isLogin: $isLogin');
    notifyListeners();
  }

}